package com.imut.lagain.entity;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 关怀偏好设置实体类
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("care_preference")
public class CarePreference implements Serializable {
    private static final Logger log = LoggerFactory.getLogger(CarePreference.class);


    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 用户ID
     */
    @TableField("user_id")
    private Long userId;

    /**
     * 关怀类型（comfort-舒适关怀，nutrition-营养关怀，exercise-运动关怀，emotional-情感关怀，practical-实用关怀）
     */
    @TableField("care_type")
    private String careType;

    /**
     * 是否启用该类型关怀
     */
    @TableField("enabled")
    private Boolean enabled;

    /**
     * 关怀频率（daily-每日，weekly-每周，monthly-每月，phase_based-基于生理期阶段）
     */
    @TableField("frequency")
    private String frequency;

    /**
     * 关怀强度（low-低，medium-中，high-高）
     */
    @TableField("intensity")
    private String intensity;

    /**
     * 偏好设置（JSON格式存储具体偏好）
     */
    @TableField("preferences")
    private String preferences;

    /**
     * 创建时间
     */
    @TableField(value = "created_at", fill = FieldFill.INSERT)
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    @TableField(value = "updated_at", fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedAt;

    /**
     * 是否删除（0-未删除，1-已删除）
     */
    @TableLogic
    @TableField("is_deleted")
    private Integer isDeleted;
}
